/**
 * 
 */
package niuke.wangyi;

import java.util.HashMap;
import java.util.Scanner;

/**
 * 美丽的直线 用hash，对每个点，求其他点与它连线斜率相同的点个数（斜率相同+经过同一点=同一条直线）
 * 
 * @author zhongfang
 *
 */
public class test2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		final double MAX = Double.MAX_VALUE;
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		int[][] points = new int[n][2];
		for (int i = 0; i < n; i++) {
			points[i][0] = scanner.nextInt();
			points[i][1] = scanner.nextInt();
		}
		scanner.close();
		int res = 0;
		for (int i = 0; i < n; i++) {
			int x1 = points[i][0];
			int y1 = points[i][1];
			int samePoint = 1;
			HashMap<Double, Integer> linesFreq = new HashMap<>(n - 1);// 和其他n-1个点连线最多有的个数
			for (int j = 0; j < n; j++) {
				if (i == j) {
					continue;
				}
				int x2 = points[j][0];
				int y2 = points[j][1];
				if (x1 == x2 && y1 == y2) {
					samePoint++;
					continue;
				}
				double a = x1 == x2 ? MAX : (((double) y1 - y2) / (x1 - x2));// 斜率，注意要转成double！！！
				if (linesFreq.containsKey(a)) {
					linesFreq.put(a, linesFreq.get(a) + 1);
				} else {
					linesFreq.put(a, 1);
				}

			}
			// 如果没有计算过斜率，则不会遍历lineFerq，需要单独计算
			res = Math.max(res, samePoint);
			for (Integer freq : linesFreq.values()) {// 找到最大次数
				if (freq + samePoint > res) {
					res = freq + samePoint;
				}
			}
		}
		System.out.println(res);
	}
}
